package com.pkk.cloud.support.admin.dto.req.client;

import java.io.Serializable;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @description: 客户端更新请求类
 * @author: peikunkun
 * @create: 2020-03-30 10:56
 **/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class OauthClientUpdateReqDto implements Serializable {

  private static final long serialVersionUID = 394529751953421274L;


  @NotNull(message = "主键ID不能为空")
  private Long id;

  /**
   * 客户端id[客户端的信息,可理解为后台服务端）]
   */
  @NotBlank(message = "客户端ID不能为空")
  private String clientId;

  /**
   * 客户端名称
   */
  @NotBlank(message = "客户端名称不能为空")
  private String clientName;

  /**
   * 客户端密钥【第三方应用和授权服务器之间的安全凭证(可理解为密码)】
   */
  @NotBlank(message = "客户端密钥不能为空")
  private String clientOriginalSecret;

  @NotNull(message = "客户端密钥不能为空")
  private String[] grantTypeArr;

  /**
   * token的有效期access_token 的有效时长 (秒), 默认 12 小时
   */
  private Integer accessTokenValiditySeconds;

  /**
   * 刷新token的有效期refresh_token 的有效时长 (秒), 默认 30 天
   */
  private Integer refreshTokenValiditySeconds;

  /**
   * 是否启用
   */
  @NotNull(message = "请选择是否启用")
  private Boolean enable;

  /**
   * 类型，1：页面，2：服务
   */
  @NotNull(message = "请选择客户端类型")
  private Integer clientType;

  /**
   * 客户端所属服务端id(一个服务端可以有多个客户端)
   */
  private Long ownServerId;

  /**
   * 跳转URL客户端的重定向URI
   */
  private String redirectUri;

}
